package com.hexb.smh.service;

import com.hexb.core.common.Page;
import com.hexb.smh.entity.Account;
import com.hexb.smh.entity.param.account.AccountQueryParam;
import com.hexb.smh.entity.view.ImportResult;
import com.hexb.smh.entity.view.SimpleAccount;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author : hexb
 */
public interface IAccountService {

    void save(Account account);

    void update(Account account);

    /**
     * 搜索用户
     */
    Page<Account> search(AccountQueryParam param, int pageSize, int pageNum);

    /**
     * 按登录名或电话号码查找用户
     */
    Account findByLoginNameOrPhoneNo(String loginName);

    /**
     * 启用/禁用帐号
     */
    Account toggleAccount(Integer id, Boolean enabled);

    /**
     * 更新登录时间
     */
    int loginLog(Integer id,String ip);

    int delete(Integer id);

    int restPassword(Integer id);

    /**
     * 激活帐号(首次登录修改密码)
     */
    int active(String newPassword);

    int deleteBatch(Integer[] ids);

    int updateEnableBatch(Integer[] ids, Boolean enable);

    Account findById(Integer id);

    Account findOneByMap(Map<?, ?> param);

    int changePassword(String oldPassword, String newPassword);

    ImportResult<Account> importSalesman(MultipartFile file);

    List<SimpleAccount> find(String searchKey,Boolean all);

}
